package com.dfd.store.service.impl;

import java.sql.SQLException;

import com.dfd.store.dao.UserDao;
import com.dfd.store.domain.User;
import com.dfd.store.service.UserService;
import com.dfd.store.utils.BeanFactory;

public class UserServiceImpl implements UserService {
	 UserDao userDao = (UserDao) BeanFactory.getName("UserDao");

	/**
	 * 实现注册的功能
	 *
	 * @throws Exception
	 */
	@Override
	public void userRigist(User user) throws Exception {
		// 实现注册
		userDao.userRigist(user);
	}

	/**
	 * 实现用户注册后激活功能
	 *
	 * @throws SQLException
	 */
	@Override
	public boolean userActive(String code) throws SQLException {
		// 实现激活
		// 对DB发送select * from User where code = ?
		User user = userDao.userActive(code);
		// 如果user 不等于空
		if (user != null) {
			// 可以根据激活码查询到一个用户
			// 根据用户的状态,清空激活码
			user.setState(1);
			user.setCode(null);
			// 对数据库执行一次更新
			userDao.updateUser(user);
			return true;
		} else {
			// 不可以查询到一个用户
			return false;
		}

	}

	/**
	 * 用户修改
	 *
	 * @param user
	 * @throws SQLException
	 */
	@Override
	public void updateUser(User user) throws SQLException {
		userDao.updateUser(user);
	}

	/**
	 * 用户登录
	 *
	 * @param user
	 * @return
	 */
	@Override
	public User userLogin(User user) throws SQLException {
		// 可以利用异常在模块之间传递一些数据
		User uu = userDao.userLogin(user);
		if (uu == null) {
			throw new RuntimeException("密码有误!");
		} else if (uu.getState() == 0) {
			throw new RuntimeException("用户未激活");
		} else {

			return uu;
		}
	}

}
